home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / benchmarks / exectest / exectest.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-05-20  |  1.5 KB  |  84 lines

  1. /* $Header: /sprite/src/benchmarks/exectest/RCS/exectest.c,v 1.3 92/05/19 17:00:59 kupfer Exp $ */
  2.  
  3. /* 
  4.  * Usage: exectest
  5.  * (no arguments).
  6.  */
  7.  
  8. #include <stdio.h>
  9. #include <sys/types.h>
  10. #include <sys/file.h>
  11. #include <sys/time.h>
  12. #ifdef sprite
  13. #include "proc.h"
  14. #endif
  15.  
  16.  
  17. main(argc, argv)
  18.     int argc;
  19.     char *argv[];
  20. {
  21.     register     int     i;
  22.     char    buf[128];
  23.     int        numReps;
  24.     struct timeval startTime, endTime;
  25.     int        pid;
  26.     FILE    *fd;
  27.  
  28.  
  29.     if (argc == 1) { 
  30.     fd = fopen("time.file","w");
  31.     if (!fd) {
  32.         perror("fopen");
  33.         exit(1);
  34.     }
  35.     gettimeofday(&startTime,0);
  36.     if (fwrite(&startTime, sizeof(startTime), 1, fd) != 1) {
  37.         perror("fwrite");
  38.         exit(1);
  39.     }
  40.     fclose(fd);
  41.     sprintf(buf,"%d", 1000);
  42.     execl(argv[0], argv[0], buf,0);
  43.     perror("execl");
  44.     fprintf(stderr,"Exec 1 failed\n");
  45.     exit(1);
  46.     }
  47.     numReps = atoi(argv[1]);
  48.     if (numReps <= 0) {
  49.     gettimeofday(&endTime,0);
  50.     fd = fopen("time.file","r");
  51.     if (!fd) {
  52.         perror("fopen");
  53.         exit(1);
  54.     }
  55.     if (fread(&startTime, sizeof(startTime), 1, fd) != 1) {
  56.         perror("fread");
  57.         exit(1);
  58.     }
  59.     fclose(fd);
  60.     fixtime(&startTime,&endTime);
  61.     printf("exec test %d exec time %4d.%03d\n", 1000, 
  62.         endTime.tv_sec, endTime.tv_usec/1000);
  63.     exit(0);
  64.     }
  65.     sprintf(buf,"%d",numReps-1);
  66.     execl(argv[0], argv[0], buf,0);
  67.     perror("execl");
  68.     fprintf(stderr,"Exec failed");
  69.     exit(1);
  70.  
  71. }
  72. fixtime(s, e)
  73.         struct  timeval *s, *e;
  74. {
  75.  
  76.         e->tv_sec -= s->tv_sec;
  77.         e->tv_usec -= s->tv_usec;
  78.         if (e->tv_usec < 0) {
  79.                 e->tv_sec--; e->tv_usec += 1000000;
  80.         }
  81. }
  82.  
  83.  
  84.